#include "head.h"
/*
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

int msgctl(int msqid, int cmd, struct msqid_ds *buf);

功能:
    对消息队列执行各种控制操作，如删除消息队列、获取或设置消息队列的状态信息等。

参数:
    int msqid: 消息队列的标识符，由 `msgget` 返回。
    int cmd: 控制命令，用于指定要执行的操作。常见的命令包括:
        - `IPC_RMID`: 删除指定的消息队列。
        - `IPC_STAT`: 获取消息队列的状态信息，并将结果存储在 `buf` 指向的 `msqid_ds` 结构中。
        - `IPC_SET`: 设置消息队列的状态信息，`buf` 指向一个包含新状态的 `msqid_ds` 结构。
    struct msqid_ds *buf: 指向 `msqid_ds` 结构的指针，用于保存或设置消息队列的状态信息。根据 `cmd` 的不同，可能会用到或忽略此参数。

返回值:
    成功: 返回 0。
    失败: 返回 -1，并设置 `errno` 来指示错误，例如，如果权限不足或消息队列不存在。

struct msqid_ds {
    struct ipc_perm msg_perm;   // 消息队列的权限和相关信息
    time_t msg_stime;           // 上次发送消息的时间
    time_t msg_rtime;           // 上次接收消息的时间
    time_t msg_ctime;           // 消息队列的创建或上次修改时间
    unsigned long msg_cbytes;   // 当前队列中所有消息的总字节数
    unsigned long msg_qnum;     // 当前队列中的消息数量
    unsigned long msg_qbytes;   // 队列中允许的最大字节数
    pid_t msg_lspid;            // 最后发送消息的进程ID
    pid_t msg_lrpid;            // 最后接收消息的进程ID
};

struct ipc_perm {
    uid_t uid;    // 拥有者的用户 ID
    gid_t gid;    // 拥有者的组 ID
    uid_t cuid;   // 创建者的用户 ID
    gid_t cgid;   // 创建者的组 ID
    mode_t mode;  // 访问权限（类似文件权限），低 9 位表示权限
    unsigned short __seq;  // 序列号（用于唯一标识 IPC 对象）
    key_t key;    // IPC 键值
};

*/

int main(int argc, char const *argv[])
{
    struct msqid_ds my_ds;
    msgctl( 131072 , IPC_RMID , &my_ds);


    return 0;
}

